<?php
/**
 * fileUploadFileList.php
 * 
 * (C) 2009, tetsuya.odaka(EzoGP).
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* 
 * アップロードされたファイルのリストを一覧表示します。
 * 
 * author；	t.odaka
 * date ;	2005/10/16
 * 
 * modified;	2009/3/14 	t.odaka
 * 				2009/5/14 	t.odaka	refactoring
 * 				2009/5/25	t.odaka	不要なコメント行を削除
 * 
*/
	
	// 前準備
	include("../Myznala/myHeader.inc.php");

	/*
	 * 変数の宣言
	 */
	$app_path=APP_PATH;
	$save_dir=$app_path."/uploads/";
	// 遷移先のテンプレート名
	$myTemplate	='../examples-dwoo/templates/fileUploadFileList.tpl';
	
	/* 
	 * 入力エラーチェック
	 */
	// ユーティリティーでファイル属性のリストを取得する。 
	$result_array=getFiles($save_dir);
	
	if(count($result_array)>0){
		// テンプレートに変数をセット
		$myTplData = array(
			'myLoginUser'=>$myLoginUser,
			'myAppName'=>'examples-dwoo',
			'myPageTitle' => 'FileUpload_List',
		
			'dir'=>	$save_dir,
			'file_array' => $result_array
		);
	} else {
		// エラーメッセージの編集
		require_once('../Myznala/ErrorBean.class.php');
		$myErrArray=array();
		$errorObj=new ErrorBean();
		$errorObj->setField($save_dir);
		$errorObj->setMessage("ファイルリストの取得に失敗しました。");
		$myErrArray[0]=$errorObj;
		// テンプレートに変数をセット
		$myTplData = array(
			'myLoginUser'=>$myLoginUser,
			'myAppName'=>'examples-dwoo',
			'myPageTitle' => 'FileUpload_List',
			
			'myErrArray'=>	$myErrArray
		);
		// エラーログの出力(end)
		$myLog->err("$myPageName: end");
	}

	// 後処理
	include("../Myznala/myFooter.inc.php");
	
	return;

	/* 
 	* パス情報（/で終わるようにしてください）をもらって、そこにあるファイルの属性情報を
 	* 配列で返します。
	*/
	function getFiles($dir_name){
		require_once('../Myznala/FileAttBean.class.php');
		$result_array=array();
		if($handle=opendir($dir_name)){
			$i=0;
			while($filename=readdir($handle)){
				if($filename!="." &&$filename!=".."){
					$pinfo = pathinfo($dir_name.$filename);
					$fileObj = new FileAttBean();
					// ファイルはurlencodingして書き出されているので表示
					// 用項目は、decodeする。
					$fileObj->setName(urldecode($filename));
					$fileObj->setURLEncodedName($filename);
					$fileObj->setSize(filesize($dir_name.$filename));
					$fileObj->setLastUpdate(date("Y/m/d H:i:s", filemtime($dir_name.$filename)));
					$fileObj->setLastAccess(date("Y/m/d H:i:s", fileatime($dir_name.$filename)));
					$fileObj->setPermit(fileperms($dir_name.$filename));
					$fileObj->setExt($pinfo["extension"]);
					$result_array[$i]=$fileObj;
					$i++;
				}
			}
		}
		return $result_array;
	}
?>